﻿using AutoMapper;
using QuanLyGiaoVuDAL.DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace QuanLyGiaoVuUI.Models.GiangVienClient
{
    public class DangKyLichThiViewModel
    {
        public DangKyLichThiViewModel()
        {
            NgayGio = DateTime.Now;
            NgayThi = DateTime.Now;
            GioThi = new TimeSpan();
        }

        public System.Guid MaLichThi { get; set; }
        public System.Guid MaLopMonHoc { get; set; }
        public System.DateTime NgayGio { get; set; }
        [Range(0, 600)]
        public short ThoiGianLamBai { get; set; }

        public System.Guid? MaPhong { get; set; }
        public int HinhThucThi { get; set; }

        [DisplayName("Ghi chú")]
        public string GhiChu { get; set; }

        public DateTime NgayThi { get; set; }
        public TimeSpan GioThi { get; set; }
        public TimeSpan GioKetThuc { get; set; }

        public LopMonHocDTO LopMonHoc { get; set; }
        public IEnumerable<LopMonHocDTO> DanhSachLopMonHoc { get; set; }

        public DateTime GetNgayGio()
        {
            return new DateTime(NgayThi.Year, NgayThi.Month, NgayThi.Day, GioThi.Hours, GioThi.Minutes, 0);
        }

        public short GetThoiGianLamBai()
        {
            return (short)(GioKetThuc.TotalMinutes - GioThi.TotalMinutes);

        }

        public LichThiDTO ToLichThiDTO()
        {
            Mapper.CreateMap(typeof(DangKyLichThiViewModel), typeof(LichThiDTO));
            LichThiDTO lichThiDTO = new LichThiDTO();
            Mapper.Map(this, lichThiDTO);
            return lichThiDTO;
        }

        public static DangKyLichThiViewModel FromLichThiDTO(LichThiDTO lichThiDTO)
        {
            Mapper.CreateMap(typeof(LichThiDTO), typeof(DangKyLichThiViewModel));
            DangKyLichThiViewModel dangKyLichThiViewModel = new DangKyLichThiViewModel();
            Mapper.Map(lichThiDTO,dangKyLichThiViewModel);
            return dangKyLichThiViewModel;
        }
    }
}